/**
 * 调试Mastra客户端API格式
 */

import { MastraClient } from '@mastra/client-js';

console.log('🔍 调试Mastra客户端API...\n');

const client = new MastraClient({
  baseUrl: 'http://localhost:4111',
  retries: 3,
  backoffMs: 300,
  maxBackoffMs: 5000,
});

console.log('📡 客户端创建成功');
console.log('🔧 客户端对象结构:');
console.log('- client:', typeof client);
console.log('- client.agent:', typeof client.agent);
console.log('- client.agents:', typeof client.agents);

// 检查客户端的所有方法
console.log('\n🔍 客户端可用方法:');
console.log('- 客户端属性:', Object.keys(client));

// 尝试不同的API调用方式
async function testDifferentAPIs() {
  console.log('\n🧪 测试不同的API调用方式...');
  
  try {
    // 方式1: client.agent.run
    if (client.agent && client.agent.run) {
      console.log('✅ 方式1可用: client.agent.run');
    } else {
      console.log('❌ 方式1不可用: client.agent.run');
    }
    
    // 方式2: client.agents
    if (client.agents) {
      console.log('✅ 方式2可用: client.agents');
      console.log('   agents方法:', Object.keys(client.agents));
    } else {
      console.log('❌ 方式2不可用: client.agents');
    }
    
    // 方式3: client.run
    if (client.run) {
      console.log('✅ 方式3可用: client.run');
    } else {
      console.log('❌ 方式3不可用: client.run');
    }
    
    // 方式4: 直接调用
    if (typeof client === 'function') {
      console.log('✅ 方式4可用: client()');
    } else {
      console.log('❌ 方式4不可用: client()');
    }
    
    // 检查所有可用方法
    console.log('\n📋 所有可用方法和属性:');
    for (const key in client) {
      console.log(`   ${key}: ${typeof client[key]}`);
    }
    
  } catch (error) {
    console.error('❌ 测试失败:', error.message);
  }
}

testDifferentAPIs().catch(console.error);
